import java.util.Scanner;

public class Main {
    //第二题
    //求两数的最小公倍数  更相减损术
    public static void main(String[] args) {



        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int c = a * b;
        if (a < b) {
            int r = 0;
            r = a;
            a = b;
            b = r;

        }
        while (true) {
            int r = a % b;
            if (r == 0) {
                System.out.println(c / b);
                break;

            } else {
                a = b;
                b = r;

            }
        }

    }
    static int maxp(int a, int b) {
        while (a - b != 0) {
            int c = a - b;
            a = b;
            b = c;
        }
        return b;
    }




    //第一题
   /* public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        in.nextLine();
        String[] all = new String[n];
        for (int i = 0; i < n; i++) {
            all[i] = in.nextLine();

        }
        int l = 0;
        int d = 0;
        l = LengthSort(all, n);
        d = DictionarySort(all, n);
        if (l == 1 && d == 1 ) {
            System.out.println("both");
        } else if (d == 1) {
            System.out.println("lexicographically");
        } else if (l == 1) {
            System.out.println("lengths");
        } else {
            System.out.println("none");
        }
    }

    public static int LengthSort(String[] all, int n) {
        for (int i = 0; i < n - 1; i++) {
            if (all[i].length() > all[i + 1].length()) {
                return 0;
            }
        }
        return 1;
    }

    public  static int DictionarySort(String[] all, int n) {
        int i = 0;
        int count = n - 1;//比较次数  总共比较 n - 1 次  ，每次比较如果符合条件  count--  ，count==0 时 所有字符串满足条件

        while (i < n - 1) {
            int j1 = 0;
            int j2 = 0 ;

            int s1 = all[i].length();
            int s2 = all[i + 1].length();
            *//* char[] a1 = all[i].toCharArray();
             char[] a2 = all[i+1][s2].toCharArray();*//*

            while (j1 < s1 || j2 < s2) {
                if (j1 < j2) {//后一个比前一个长 满足条件
                    count--;
                    break;
                }
                if (all[i].charAt(j1) == all[i + 1].charAt(j2)) {
                    if (j1 < s1 - 1) {
                        j1++;
                    }
                    if (j2 < s2 - 1) {
                        j2++;
                    }
                    if(j1 == s1-1 && j2 == s2-1){//2个一样长   也满足条件
                        count--;
                        break;
                    }
                    if(j1 > j2){//前一个比后一个长
                        break;
                    }
                } else if (all[i].charAt(j1) < all[i + 1].charAt(j2)) {//满足前一个比后一个短的条件
                    j1 = s1;
                    j2 = s2;
                    count--;
                    break;
                }else {
                    break;
                }
            }
            i++;
        }
        if (count == 0) {
            return 1;
        }
        return 0;
    }*/
   /* public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        in.nextLine();
        String[] all = new String[n];
        for (int i = 0; i < n; i++) {
            all[i] = in.nextLine();
        }
        int l = 0;
        int d = 0;
        l = LengthSort(all, n);
        d = DictionarySort(all, n);
        if (l == 1 && d == 1 ) {
            System.out.println("both");
        } else if (d == 1) {
            System.out.println("lexicographically");
        } else if (l == 1) {
            System.out.println("lengths");
        } else {
            System.out.println("none");
        }
    }

    public static int LengthSort(String[] all, int n) {
        for (int i = 0; i < n - 1; i++) {
            if (all[i].length() > all[i + 1].length()) {
                return 0;
            }
        }
        return 1;
    }

    public  static int DictionarySort(String[] all, int n) {
        int i = 0;
        int count = n - 1;

        while (i < n - 1) {
            int j1 = 0;
            int j2 = 0 ;

            int s1 = all[i].length();
            int s2 = all[i + 1].length();
            *//* char[] a1 = all[i].toCharArray();
             char[] a2 = all[i+1][s2].toCharArray();*//*

            while (j1 < s1 || j2 < s2) {
                if (all[i].charAt(j1) == all[i + 1].charAt(j2)) {
                    if (j1 < s1 - 1) {
                        j1++;
                    }
                    if (j2 < s2 - 1) {
                        j2++;
                    }
                    if (j1 < j2) {
                        count--;
                        break;
                    }
                } else if (all[i].charAt(j1) < all[i + 1].charAt(j2)) {
                    j1 = s1;
                    j2 = s2;
                    count--;
                    break;
                }
            }
            i++;
        }
        if (count == 0) {
            return 1;
        }
        return 0;
    }*/







    public static void main1(String[] args) {


       Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();

        if(n == 0 || n == 1 ){
            System.out.println(0);
            return;
        }else if(n == 2){
            System.out.println(2);
            return;
        }
        for (int i = 2; i <1000000; i++) {
            int ret = F(i);
            if(ret > n){
                int  right = ret;
                int  left= F(i-1);
                System.out.println((n - left) < (right - n) ? (n - left) : (right - n));
                return;

            }

        }


    }
    static int count = 0;
    public static int F(int x){

        if(x == 0){
            return 0;
        }else if(x == 1 ){
            return 1;
        }else {


            return F(x - 2) +F(x - 1);
        }
    }
}